package com.linsen.erp.admin.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import lombok.Getter;
import lombok.Setter;

/**
 * <p>
 * 操作日志
 * </p>
 *
 * @author zhaoyong
 * @since 2023-07-24
 */
@Getter
@Setter
@TableName("operation_log")
public class OperationLogEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId("id")
    private String id;

    /**
     * 跟踪ID
     */
    @TableField("trace_id")
    private String traceId;

    /**
     * 操作模块
     */
    @TableField("module")
    private String module;

    /**
     * 操作内容
     */
    @TableField("content")
    private String content;

    /**
     * 执行方法
     */
    @TableField("method")
    private String method;

    /**
     * 请求URL
     */
    @TableField("url")
    private String url;

    /**
     * 请求参数
     */
    @TableField("request_param")
    private String requestParam;

    /**
     * 响应参数
     */
    @TableField("response_param")
    private String responseParam;

    /**
     * 耗时
     */
    @TableField("execute_time")
    private Long executeTime;

    /**
     * 请求ip
     */
    @TableField("ip")
    private String ip;

    /**
     * 地理信息
     */
    @TableField("location")
    private String location;

    /**
     * ISP网络运营商
     */
    @TableField("isp")
    private String isp;

    /**
     * 请求userAgent
     */
    @TableField("user_agent")
    private String userAgent;

    /**
     * 操作系统类型
     */
    @TableField("os")
    private String os;

    /**
     * 浏览器类型
     */
    @TableField("browser")
    private String browser;

    /**
     * 创建操作人
     */
    @TableField(value = "create_by", fill = FieldFill.INSERT)
    private String createBy;

    /**
     * 创建操作人username
     */
    @TableField(value = "create_by_name", fill = FieldFill.INSERT)
    private String createByName;

    /**
     * 创建时间
     */
    @TableField(value = "create_time", fill = FieldFill.INSERT)
    private LocalDateTime createTime;


}
